;--------------------------------------------------------
; File Created by ChiponCC : aolisn inc.
; Version 3.0.4#6752 (Jul  6 2017 15:09:47) (MSVC)
; This file was generated Tue Apr 03 20:31:56 2018
;--------------------------------------------------------
; chipon port for the 16-bit core
;--------------------------------------------------------
;	.file	"../main.c"
	.radix dec
	.include "KF8TS2508.inc"
;--------------------------------------------------------
; external declarations
;--------------------------------------------------------
	.extern	_init_mcu
	.extern	_Pmw1InitFun
	.extern	_T0InitFun
	.extern	__KF8spts2w_LIBf_init_touch_
	.extern	__KF8spts2w_LIBf_touch_process_
	.extern	__KF8spts2w_Lib_SET_MCU_Parameter
	.extern	_read_data_eep_ts2w_
	.extern	_write_eep_ts2w_
	.extern	__R2PCL
	.extern	_TOUCH_DEBUG_TRS_DEAL
	.extern	_TOUCH_DEBUG_TRS_BAIHUALV
	.extern	_TOUCH_DEBUG_SEND_OUT
	.extern	__divulong
	.extern	_PSW_bits
	.extern	_P0_bits
	.extern	_P2_bits
	.extern	_P1_bits
	.extern	_PCH_bits
	.extern	_INTCTL_bits
	.extern	_EIF1_bits
	.extern	_EIF2_bits
	.extern	_T1CTL_bits
	.extern	_PWMCTL_bits
	.extern	_BANK_bits
	.extern	_ADSCANCTL_bits
	.extern	_VDACS_bits
	.extern	_ANSEH_bits
	.extern	_ADCCTL0_bits
	.extern	_OPTR_bits
	.extern	_IP0_bits
	.extern	_IP1_bits
	.extern	_IP2_bits
	.extern	_TR0_bits
	.extern	_TR2_bits
	.extern	_TR1_bits
	.extern	_OSCSTA_bits
	.extern	_IP3_bits
	.extern	_VRECTL_bits
	.extern	_EIE1_bits
	.extern	_EIE2_bits
	.extern	_PCTL_bits
	.extern	_OSCCTL_bits
	.extern	_ANSEL_bits
	.extern	_PUR0_bits
	.extern	_IOCL_bits
	.extern	_ADCCTL1_bits
	.extern	_P0LR_bits
	.extern	_P2LR_bits
	.extern	_P1LR_bits
	.extern	_EIE3_bits
	.extern	_EIF3_bits
	.extern	_T3CTL_bits
	.extern	_CTCTL0_bits
	.extern	_ADCINTCTL_bits
	.extern	_PUR1_bits
	.extern	_PUR2_bits
	.extern	_CTCTL1_bits
	.extern	_INTEDGCTL_bits
	.extern	_VDAC_bits
	.extern	_VRES_bits
	.extern	_SSCICTL0_bits
	.extern	_SSCICTL1_bits
	.extern	_SSCISTA_bits
	.extern	_SSCIADD_bits
	.extern	_SSCIMSK_bits
	.extern	_WDTPS_bits
	.extern	_CTCTL2_bits
	.extern	_T4CTL_bits
	.extern	__KF8_Disturb_Protect_Circle_
	.extern	__KF8_Up_BaseLine_Circle_
	.extern	__KF8_LIBi_channel_flag_
	.extern	__KF8_LIBi_Date_Change_
	.extern	__KF8_LIBc_channel_
	.extern	__KF8_LIBi_buff_hit_
	.extern	__KF8_LIBi_buff_baseline_
	.extern	__KF8_LIBi_buff_refline_
	.extern	__KF8_LIBc_touch_count_
	.extern	_Arr_erom_TS2W_
	.extern	_sentbuf1
	.extern	_sentbuf2
	.extern	_sentbuf3
	.extern	_sentbuf4
	.extern	_Flag
	.extern	_AlarmFlag
	.extern	_CurrentAdjustNum
	.extern	_KeyDownNum
	.extern	_Time20MScnt
	.extern	_V_NoWatercnt
	.extern	_AdjustOvercnt
	.extern	_NoWaterTimecnt
	.extern	_main_cnt
	.extern	_SubNum
	.extern	_AD_temp_V
	.extern	_AD_temp_I
	.extern	_AD_V
	.extern	_AD_I
	.extern	_AD_cnt
	.extern	_Power
	.extern	_LEDFre
	.extern	_CurrentShortCnt
	.extern	_I_NoWatercnt
	.extern	_cnt
	.extern	_keycnt
	.extern	_keycnttime
	.extern	_CHS_AMOUNT
	.extern	_TCS_AMOUNT
	.extern	__KF8_Inside_Reference_Channel_Disturb_Threshold_Set_
	.extern	__KF8_Disturb_Protect_Circle_Define
	.extern	__KF8_Up_BaseLine_Circle_Define
	.extern	__KF8_Inside_Reference_Channel_Order
	.extern	__KF8_Config_Finger_Threshold
	.extern	_CONFIG_NO_FINGER_THRESHOLD
	.extern	__KF8_TOUCH_CH_EN
	.extern	_T0
	.extern	_PCL
	.extern	_PSW
	.extern	_P0
	.extern	_P2
	.extern	_P1
	.extern	_PCH
	.extern	_INTCTL
	.extern	_EIF1
	.extern	_EIF2
	.extern	_T1L
	.extern	_T1H
	.extern	_T1CTL
	.extern	_PWM1L
	.extern	_PWMCTL
	.extern	_PP1
	.extern	_BANK
	.extern	_ADSCANCTL
	.extern	_VDACS
	.extern	_ANSEH
	.extern	_ADCDATA0H
	.extern	_ADCCTL0
	.extern	_OPTR
	.extern	_IP0
	.extern	_IP1
	.extern	_IP2
	.extern	_TR0
	.extern	_TR2
	.extern	_TR1
	.extern	_OSCSTA
	.extern	_IP3
	.extern	_VRECAL1
	.extern	_VRECTL
	.extern	_EIE1
	.extern	_EIE2
	.extern	_PCTL
	.extern	_OSCCTL
	.extern	_OSCCAL0
	.extern	_ANSEL
	.extern	_PP2
	.extern	_PWM2L
	.extern	_PUR0
	.extern	_IOCL
	.extern	_OSCCAL1
	.extern	_NVMDATAH
	.extern	_NVMDATAL
	.extern	_NVMADDRH
	.extern	_NVMADDRL
	.extern	_NVMCTL0
	.extern	_NVMCTL1
	.extern	_ADCDATA0L
	.extern	_ADCCTL1
	.extern	_P0LR
	.extern	_P2LR
	.extern	_P1LR
	.extern	_EIE3
	.extern	_EIF3
	.extern	_OSCCAL2
	.extern	_OSCCAL3
	.extern	_T3CTL
	.extern	_T3L
	.extern	_ADCDATA1H
	.extern	_ADCDATA1L
	.extern	_CTCTL0
	.extern	_ADCINTCTL
	.extern	_ADCDATA2H
	.extern	_ADCDATA2L
	.extern	_ADCDATA3H
	.extern	_T3H
	.extern	_PUR1
	.extern	_PUR2
	.extern	_CTCTL1
	.extern	_INTEDGCTL
	.extern	_ADCDATA3L
	.extern	_VDAC
	.extern	_VRES
	.extern	_SSCICTL0
	.extern	_SSCICTL1
	.extern	_SSCISTA
	.extern	_SSCIBUFR
	.extern	_SSCIADD
	.extern	_SSCIMSK
	.extern	_WDTPS
	.extern	_VRECAL2
	.extern	_VRECAL3
	.extern	_CTCTL2
	.extern	_T4L
	.extern	_T4H
	.extern	_T4REL
	.extern	_T4REH
	.extern	_T4CTL
	.extern	_RC32KCAL
	.extern	_startup
	.extern	__gsinit_startup
;--------------------------------------------------------
; global declarations
;--------------------------------------------------------
	.global	_delay_us
	.global	_delay_ms
	.global	_AdjustFun
	.global	_INT_FUN
	.global	_Water_Judge
	.global	_Init_ram
	.global	_Init_data
	.global	_KeyFun
	.global	_ADCRead
	.global	_main
	.global	_touch_process_flag
	.global	_Touch_Watch
	.global	_NEED_CAL_IN_LINE

	.global I0R1
	.global I0R7
	.global I0PSW
	.global I0PCH
	.global I1R1
	.global I1R7
	.global I1PSW
	.global I1PCH
	.global STK11
	.global STK10
	.global STK09
	.global STK08
	.global STK07
	.global STK06
	.global STK05
	.global STK04
	.global STK03
	.global STK02
	.global STK01
	.global STK00

sharebank .udata
I0R1		.res 1
I0R7		.res 1
I0PSW		.res 1
I0PCH		.res 1
I1R1		.res 1
I1R7		.res 1
I1PSW		.res 1
I1PCH		.res 1
STK11	.res 1
	.type STK11, 108
STK10	.res 1
	.type STK10, 108
STK09	.res 1
	.type STK09, 108
STK08	.res 1
	.type STK08, 108
STK07	.res 1
	.type STK07, 108
STK06	.res 1
	.type STK06, 108
STK05	.res 1
	.type STK05, 108
STK04	.res 1
	.type STK04, 108
STK03	.res 1
	.type STK03, 108
STK02	.res 1
	.type STK02, 108
STK01	.res 1
	.type STK01, 108
STK00	.res 1
	.type STK00, 108

;--------------------------------------------------------
; global definitions
;--------------------------------------------------------
UD_main_0	.udata
_touch_process_flag	.res	1

UD_main_1	.udata
_Touch_Watch	.res	2

UD_main_2	.udata
_NEED_CAL_IN_LINE	.res	1

;--------------------------------------------------------
; absolute symbol definitions
;--------------------------------------------------------
;--------------------------------------------------------
; compiler-defined variables
;--------------------------------------------------------
UDL_main_0	.udata
r0x1056	.res	1
UDL_main_1	.udata
r0x1057	.res	1
UDL_main_2	.udata
r0x1058	.res	1
UDL_main_3	.udata
r0x1059	.res	1
UDL_main_4	.udata
r0x105A	.res	1
UDL_main_5	.udata
r0x105B	.res	1
UDL_main_6	.udata
r0x105D	.res	1
UDL_main_7	.udata
r0x105C	.res	1
UDL_main_8	.udata
r0x105F	.res	1
UDL_main_9	.udata
r0x105E	.res	1
UDL_main_10	.udata
r0x1060	.res	1
UDL_main_11	.udata
r0x1061	.res	1
UDL_main_12	.udata
r0x1062	.res	1
UDL_main_13	.udata
r0x1063	.res	1
UDL_main_14	.udata
r0x1064	.res	1
;--------------------------------------------------------
; initialized data
;--------------------------------------------------------
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
;	.udata_ovr
;--------------------------------------------------------
; reset vector 
;--------------------------------------------------------
STARTUP	.code 0x0000
	NOP
	PAGESEL	init_imp
	JMP		init_imp

	.global	init_imp
INIT_IMP	.code
init_imp
	PAGESEL	_startup
	CALL	_startup
	PAGESEL	__gsinit_startup
	CALL	__gsinit_startup
	PAGESEL	_main
	JMP		_main
;--------------------------------------------------------
; interrupt and initialization code
;--------------------------------------------------------
interrupt_0x04	.code	0x4
	MOV		R2,R0
	MOV		R3,BANK
	MOV		R0,PSW
	BANKSEL	I0PSW
	MOV		I0PSW,R0
	MOV		R0,PCH
	BANKSEL	I0PCH
	MOV		I0PCH,R0
	MOV		I0R1,R1
	MOV		I0R7,R7
	PAGESEL	interrupt_service_routine_0x04
	JMP		interrupt_service_routine_0x04



func._INT_FUN	.code
;***
;  PostBlock Stats: dbName = I
;***
;entry:  _INT_FUN	;Function start
; 0 exit points
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_INT_FUN	;Function start
; 0 exit points
;	op : GET_VALUE_AT_ADDRESS
; R3 resprent for wsave,R4 resprent for ssave, R5 resprent for psave
interrupt_service_routine_0x04
;	.line	107; "../main.c"	if(T0IF)
	BANKSEL	_INTCTL_bits
	JB	_INTCTL_bits, 2
	JMP	_00302_DS_
;	op : =
;	.line	109; "../main.c"	T0IF = 0;
	BANKSEL	_INTCTL_bits
	CLR	_INTCTL_bits, 2
;	op : =
;	.line	110; "../main.c"	T0 = T0_MAX;
	MOV	R0,# 0x05
	BANKSEL	_T0
	MOV	_T0, R0
;	op : <
;unsigned compare: left < lit(0xFA=250), size=1
;	.line	111; "../main.c"	if(main_cnt<250)main_cnt++;
	MOV	R0,# 0xfa
;	.line	113; "../main.c"	Time20MScnt++;
	BANKSEL	_main_cnt
	SUB	R0, _main_cnt
	JNB	PSW, 0
	JMP	_00298_DS_
	BANKSEL	_main_cnt
	INC	_main_cnt
_00298_DS_
	BANKSEL	_Time20MScnt
	INC	_Time20MScnt
;	.line	114; "../main.c"	if(Time20MScnt>=80)
	MOV	R0,# 0x50
	BANKSEL	_Time20MScnt
	SUB	R0, _Time20MScnt
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00302_DS_
;	op : =
;	.line	116; "../main.c"	Time20MScnt=0;
	BANKSEL	_Time20MScnt
	CLR	_Time20MScnt
;	op : GET_VALUE_AT_ADDRESS
;	.line	118; "../main.c"	if(KEY)
	BANKSEL	_P0_bits
	JB	_P0_bits, 3
	JMP	_00077_DS_
;	op : <
;unsigned compare: left < lit(0x7D0=2000), size=2
;	.line	120; "../main.c"	if(KeyDownNum<2000)
	MOV	R0,# 0x07
	BANKSEL	_KeyDownNum
	SUB	R0, (_KeyDownNum + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00106_DS_
	MOV	R0,# 0xd0
	BANKSEL	_KeyDownNum
	SUB	R0, _KeyDownNum
_00106_DS_
	JNB	PSW, 0
	JMP	_00299_DS_
;	op : +
;	.line	121; "../main.c"	KeyDownNum++;
	BANKSEL	_KeyDownNum
	INC	_KeyDownNum
	JB	PSW, 2
	JMP	_00299_DS_
	BANKSEL	_KeyDownNum
	INC	(_KeyDownNum + 1)
;	op : LABEL
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x51=81), size=2
_00299_DS_
;	.line	122; "../main.c"	if(KeyDownNum>LONG_KEY_MAX && !KeyReadFlag)
	MOV	R0,# 0x00
	BANKSEL	_KeyDownNum
	SUB	R0, (_KeyDownNum + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00107_DS_
	MOV	R0,# 0x51
	BANKSEL	_KeyDownNum
	SUB	R0, _KeyDownNum
_00107_DS_
	JB	PSW, 0
	JMP	_00301_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_Flag
	JNB	_Flag, 4
	JMP	_00301_DS_
;	op : =
;	.line	124; "../main.c"	LongKeyFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 2
;	op : GOTO
	JMP	_00301_DS_
;	op : LABEL
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x4=4), size=2
_00077_DS_
;	.line	129; "../main.c"	if(KeyDownNum>SHORT_KEY_MIN && KeyDownNum<SHORT_KEY_MAX && !KeyReadFlag)
	MOV	R0,# 0x00
	BANKSEL	_KeyDownNum
	SUB	R0, (_KeyDownNum + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00108_DS_
	MOV	R0,# 0x04
	BANKSEL	_KeyDownNum
	SUB	R0, _KeyDownNum
_00108_DS_
	JB	PSW, 0
	JMP	_00069_DS_
;	op : <
;unsigned compare: left < lit(0x1E=30), size=2
	MOV	R0,# 0x00
	BANKSEL	_KeyDownNum
	SUB	R0, (_KeyDownNum + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00109_DS_
	MOV	R0,# 0x1e
	BANKSEL	_KeyDownNum
	SUB	R0, _KeyDownNum
_00109_DS_
	JNB	PSW, 0
	JMP	_00069_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_Flag
	JNB	_Flag, 4
	JMP	_00069_DS_
;	op : =
;	.line	131; "../main.c"	ShortKeyFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 3
;	op : +
;	.line	132; "../main.c"	keycnt++;
	BANKSEL	_keycnt
	INC	_keycnt
;	op : =
;	.line	133; "../main.c"	keycnttime=0;
	BANKSEL	_keycnttime
	CLR	_keycnttime
;	op : <
;unsigned compare: left < lit(0x3=3), size=1
;	.line	134; "../main.c"	if(keycnt>=3)
	MOV	R0,# 0x03
	BANKSEL	_keycnt
	SUB	R0, _keycnt
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00069_DS_
;	op : =
;	.line	136; "../main.c"	keycnt=0;
	BANKSEL	_keycnt
	CLR	_keycnt
;	op : =
;	.line	137; "../main.c"	LongKeycacFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 6
;	op : LABEL
;	op : =
_00069_DS_
;	.line	140; "../main.c"	KeyDownNum=0;
	BANKSEL	_KeyDownNum
	CLR	_KeyDownNum
	BANKSEL	_KeyDownNum
	CLR	(_KeyDownNum + 1)
;	op : =
;	.line	141; "../main.c"	KeyReadFlag=0;
	BANKSEL	_Flag
	CLR	_Flag, 4
;	op : <
;unsigned compare: left < lit(0xFA=250), size=1
;	.line	143; "../main.c"	if(keycnttime<250)keycnttime++;
	MOV	R0,# 0xfa
;	.line	144; "../main.c"	if(keycnttime>25)keycnt=0;
	BANKSEL	_keycnttime
	SUB	R0, _keycnttime
	JNB	PSW, 0
	JMP	_00300_DS_
	BANKSEL	_keycnttime
	INC	_keycnttime
_00300_DS_
	MOV	R0,# 0x1a
;	.line	149; "../main.c"	if(NoWaterTimecnt<250)
	BANKSEL	_keycnttime
	SUB	R0, _keycnttime
	JB	PSW, 0
	JMP	_00301_DS_
	BANKSEL	_keycnt
	CLR	_keycnt
_00301_DS_
	MOV	R0,# 0xfa
;	.line	150; "../main.c"	NoWaterTimecnt++;
	BANKSEL	_NoWaterTimecnt
	SUB	R0, _NoWaterTimecnt
;	.line	159; "../main.c"	if(T3IF)
	JNB	PSW, 0
	JMP	_00302_DS_
	BANKSEL	_NoWaterTimecnt
	INC	_NoWaterTimecnt
_00302_DS_
	BANKSEL	_EIF2_bits
	JB	_EIF2_bits, 7
	JMP	_00087_DS_
;	op : =
;	.line	162; "../main.c"	T4ON=0;
	BANKSEL	_T4CTL_bits
	CLR	_T4CTL_bits, 0
;	op : =
;	.line	164; "../main.c"	T3IF = 0;
	BANKSEL	_EIF2_bits
	CLR	_EIF2_bits, 7
;	op : =
;	.line	165; "../main.c"	Touch_Watch=0;
	BANKSEL	_Touch_Watch
	CLR	_Touch_Watch
	BANKSEL	_Touch_Watch
	CLR	(_Touch_Watch + 1)
;	op : =
;	.line	166; "../main.c"	touch_process_flag = 0xff;
	MOV	R0,# 0xff
	BANKSEL	_touch_process_flag
	MOV	_touch_process_flag, R0
;	op : LABEL
;	op : ENDFUNCTION
_00087_DS_
	BANKSEL	I0R1
	MOV	R1, I0R1
	BANKSEL	I0R7
	MOV	R7, I0R7
	BANKSEL	I0PCH
	MOV	R0, I0PCH
	MOV	PCH, R0
	BANKSEL	I0PSW
	MOV	R0, I0PSW
	MOV	PSW, R0
	MOV	BANK, R3
	MOV	R0, R2
	IRET	



func._main	.code
;***
;  PostBlock Stats: dbName = M
;***
;entry:  _main	;Function start
; 2 exit points
;has an exit
;functions called:
;   _init_mcu
;   _Pmw1InitFun
;   _T0InitFun
;   _Init_ram
;   _delay_ms
;   _delay_ms
;   __KF8spts2w_Lib_SET_MCU_Parameter
;   __KF8spts2w_LIBf_init_touch_
;   _KeyFun
;   _ADCRead
;   _ADCRead
;   __divulong
;   __divulong
;   _AdjustFun
;   _delay_ms
;   _TOUCH_DEBUG_TRS_DEAL
;   __KF8spts2w_LIBf_touch_process_
;   _Water_Judge
;   __R2PCL
;   _write_eep_ts2w_
;   _delay_ms
;   __KF8spts2w_LIBf_init_touch_
;   _init_mcu
;   _Pmw1InitFun
;   _T0InitFun
;   _Init_ram
;   _delay_ms
;   _delay_ms
;   __KF8spts2w_Lib_SET_MCU_Parameter
;   __KF8spts2w_LIBf_init_touch_
;   _KeyFun
;   _ADCRead
;   _ADCRead
;   __divulong
;   __divulong
;   _AdjustFun
;   _delay_ms
;   _TOUCH_DEBUG_TRS_DEAL
;   __KF8spts2w_LIBf_touch_process_
;   _Water_Judge
;   __R2PCL
;   _write_eep_ts2w_
;   _delay_ms
;   __KF8spts2w_LIBf_init_touch_
;15 compiler assigned registers:
;   STK00
;   r0x105E
;   r0x105F
;   r0x1060
;   r0x1061
;   r0x1062
;   r0x1063
;   STK06
;   STK05
;   STK04
;   STK03
;   STK02
;   STK01
;   r0x1064
;   r0x1065
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_main	;Function start
; 2 exit points
;	op : CALL
;	.line	365; "../main.c"	init_mcu();
	PAGESEL	_init_mcu
	CALL	_init_mcu
	PAGESEL	$
;	op : =
;	.line	366; "../main.c"	VRECTL=VRECTL1_INIT;
	MOV	R0,# 0xc2
	BANKSEL	_VRECTL
	MOV	_VRECTL, R0
;	op : CALL
;	.line	367; "../main.c"	Pmw1InitFun();
	PAGESEL	_Pmw1InitFun
	CALL	_Pmw1InitFun
	PAGESEL	$
;	op : CALL
;	.line	368; "../main.c"	T0InitFun();
	PAGESEL	_T0InitFun
	CALL	_T0InitFun
	PAGESEL	$
;	op : CALL
;	.line	369; "../main.c"	Init_ram();
	PAGESEL	_Init_ram
	CALL	_Init_ram
	PAGESEL	$
;	op : =
;	.line	370; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : =
;	.line	371; "../main.c"	LED2=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 2
;	op : SEND
;	op : CALL
;	.line	372; "../main.c"	delay_ms(1500);	   //ȴԴȶ
	MOV	R0,# 0xdc
	BANKSEL	STK00
	MOV	STK00, R0
	MOV	R0,# 0x05
	PAGESEL	_delay_ms
	CALL	_delay_ms
	PAGESEL	$
;	op : =
;	.line	373; "../main.c"	LED1=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : =
;	.line	374; "../main.c"	LED2=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : =
;	.line	378; "../main.c"	CTCTL1 = 0x81;	             	//ƵԴ    0/4/8/C & 1Ƶʵڵ2MΪ
	MOV	R0,# 0x81
	BANKSEL	_CTCTL1
	MOV	_CTCTL1, R0
;	op : =
;	.line	379; "../main.c"	VDAC=0x90;				       //ʽ0.05VddN+1)    N=0--15
	MOV	R0,# 0x90
	BANKSEL	_VDAC
	MOV	_VDAC, R0
;	op : INLINEASM
	CWDT 
;	op : SEND
;	op : CALL
;	.line	387; "../main.c"	delay_ms(500);
	MOV	R0,# 0xf4
	BANKSEL	STK00
	MOV	STK00, R0
	MOV	R0,# 0x01
	PAGESEL	_delay_ms
	CALL	_delay_ms
	PAGESEL	$
;	op : SEND
;	op : CALL
;	.line	388; "../main.c"	_KF8spts2w_Lib_SET_MCU_Parameter(2);	//ģʽkf8spts2w_lib_touch.h ˵
	MOV	R0,# 0x02
	PAGESEL	__KF8spts2w_Lib_SET_MCU_Parameter
	CALL	__KF8spts2w_Lib_SET_MCU_Parameter
	PAGESEL	$
;	op : CALL
;	.line	389; "../main.c"	_KF8spts2w_LIBf_init_touch_();		//õݴ⺯ĳʼ
	PAGESEL	__KF8spts2w_LIBf_init_touch_
	CALL	__KF8spts2w_LIBf_init_touch_
	PAGESEL	$
;	op : LABEL
;	op : INLINEASM
_00219_DS_
	CWDT 
;	op : CALL
;	.line	394; "../main.c"	KeyFun();
	PAGESEL	_KeyFun
	CALL	_KeyFun
	PAGESEL	$
;	op : GET_VALUE_AT_ADDRESS
;	.line	395; "../main.c"	if(WorkOn)
	BANKSEL	_Flag
	JB	_Flag, 0
	JMP	_00201_DS_
;	op : =
;	.line	397; "../main.c"	IO_FAN=1;///gy
	BANKSEL	_P1LR_bits
	SET	_P1LR_bits, 0
;	op : INLINEASM
	CWDT 
;	op : GET_VALUE_AT_ADDRESS
;	.line	399; "../main.c"	if(!NoWaterFlag)
	BANKSEL	_AlarmFlag
	JNB	_AlarmFlag, 0
	JMP	_00191_DS_
;	op : <
;	.line	401; "../main.c"	if(main_cnt<Power)
	BANKSEL	_Power
	MOVZ	R0, _Power
	BANKSEL	_main_cnt
	SUB	R0, _main_cnt
;comparing bytes at offset 0
	JNB	PSW, 0
;	.line	404; "../main.c"	if(!PWM1ON)
	JMP	_00186_DS_
;	.line	406; "../main.c"	PWM1ON=1;			//PWM
	BANKSEL	_PWMCTL_bits
	JNB	_PWMCTL_bits, 0
	JMP	_00281_DS_
;	.line	409; "../main.c"	AD_temp_V +=ADCRead(ANSE_V);
	BANKSEL	_PWMCTL_bits
	SET	_PWMCTL_bits, 0
_00281_DS_
	MOV	R0,# 0x89
	PAGESEL	_ADCRead
	CALL	_ADCRead
	PAGESEL	$
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x1060
	MOV	r0x1060, R0
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : CAST
;;113	MOVZ	R0, r0x105F
;;115	MOVZ	R0, r0x105E
	BANKSEL	r0x1062
	CLR	r0x1062
	BANKSEL	r0x1063
	CLR	r0x1063
;	op : +
	BANKSEL	r0x1060
	MOV	R0, r0x1060
	BANKSEL	_AD_temp_V
	ADD	_AD_temp_V, R0
;;114	MOVZ	R0, r0x1061
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00282_DS_
	BANKSEL	_AD_temp_V
	ADD	(_AD_temp_V + 1), R0
_00282_DS_
	BANKSEL	r0x1062
	MOVZ	R0, r0x1062
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00283_DS_
	BANKSEL	_AD_temp_V
	ADD	(_AD_temp_V + 2), R0
_00283_DS_
	BANKSEL	r0x1063
	MOVZ	R0, r0x1063
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00284_DS_
	BANKSEL	_AD_temp_V
	ADD	(_AD_temp_V + 3), R0
;	op : SEND
;	op : CALL
_00284_DS_
;	.line	411; "../main.c"	AD_temp_I +=ADCRead(ANSE_I);
	MOV	R0,# 0x85
	PAGESEL	_ADCRead
	CALL	_ADCRead
	PAGESEL	$
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : CAST
	BANKSEL	r0x105F
	MOVZ	R0, r0x105F
	BANKSEL	r0x1060
	MOV	r0x1060, R0
;;112	MOVZ	R0, r0x105E
	BANKSEL	r0x1062
	CLR	r0x1062
	BANKSEL	r0x1063
	CLR	r0x1063
;	op : +
	BANKSEL	r0x1060
	MOV	R0, r0x1060
	BANKSEL	_AD_temp_I
	ADD	_AD_temp_I, R0
;;111	MOVZ	R0, r0x1061
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00285_DS_
	BANKSEL	_AD_temp_I
	ADD	(_AD_temp_I + 1), R0
_00285_DS_
	BANKSEL	r0x1062
	MOVZ	R0, r0x1062
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00286_DS_
	BANKSEL	_AD_temp_I
	ADD	(_AD_temp_I + 2), R0
_00286_DS_
	BANKSEL	r0x1063
	MOVZ	R0, r0x1063
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00287_DS_
	BANKSEL	_AD_temp_I
	ADD	(_AD_temp_I + 3), R0
;	op : +
_00287_DS_
;	.line	413; "../main.c"	AD_cnt++;
	BANKSEL	_AD_cnt
	INC	_AD_cnt
	JB	PSW, 2
	JMP	_00288_DS_
	BANKSEL	_AD_cnt
	INC	(_AD_cnt + 1)
;	op : <
;unsigned compare: left < lit(0x20=32), size=2
_00288_DS_
;	.line	414; "../main.c"	if(AD_cnt>=AVEG_NUM_MIN)
	MOV	R0,# 0x00
	BANKSEL	_AD_cnt
	SUB	R0, (_AD_cnt + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00264_DS_
	MOV	R0,# 0x20
	BANKSEL	_AD_cnt
	SUB	R0, _AD_cnt
_00264_DS_
	JB	PSW, 0
	JMP	_00169_DS_
;	op : CAST
;	.line	417; "../main.c"	AD_V=AD_temp_V/AD_cnt;
	BANKSEL	_AD_cnt
	MOVZ	R0, _AD_cnt
	BANKSEL	r0x105F
	MOV	r0x105F, R0
	BANKSEL	_AD_cnt
	MOVZ	R0, (_AD_cnt + 1)
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	r0x1060
	CLR	r0x1060
	BANKSEL	r0x1061
	CLR	r0x1061
;	op : SEND
;	op : SEND
;	op : CALL
	BANKSEL	r0x105F
	MOVZ	R0, r0x105F
	BANKSEL	STK06
	MOV	STK06, R0
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	STK05
	MOV	STK05, R0
	MOV	R0,# 0x00
	BANKSEL	STK04
	MOV	STK04, R0
	MOV	R0,# 0x00
	BANKSEL	STK03
	MOV	STK03, R0
	BANKSEL	_AD_temp_V
	MOVZ	R0, _AD_temp_V
	BANKSEL	STK02
	MOV	STK02, R0
	BANKSEL	_AD_temp_V
	MOVZ	R0, (_AD_temp_V + 1)
	BANKSEL	STK01
	MOV	STK01, R0
	BANKSEL	_AD_temp_V
	MOVZ	R0, (_AD_temp_V + 2)
	BANKSEL	STK00
	MOV	STK00, R0
	BANKSEL	_AD_temp_V
	MOVZ	R0, (_AD_temp_V + 3)
	PAGESEL	__divulong
	CALL	__divulong
	PAGESEL	$
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x1060
	MOV	r0x1060, R0
	BANKSEL	STK01
	MOVZ	R0, STK01
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	STK02
	MOVZ	R0, STK02
	BANKSEL	_AD_V
	MOV	_AD_V, R0
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : CAST
;;110	MOVZ	R0, r0x105F
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	_AD_V
	MOV	(_AD_V + 1), R0
;	op : CAST
;	.line	418; "../main.c"	AD_I=AD_temp_I/AD_cnt;
	BANKSEL	_AD_cnt
	MOVZ	R0, _AD_cnt
	BANKSEL	r0x105F
	MOV	r0x105F, R0
	BANKSEL	_AD_cnt
	MOVZ	R0, (_AD_cnt + 1)
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	r0x1060
	CLR	r0x1060
	BANKSEL	r0x1061
	CLR	r0x1061
;	op : SEND
;	op : SEND
;	op : CALL
	BANKSEL	r0x105F
	MOVZ	R0, r0x105F
	BANKSEL	STK06
	MOV	STK06, R0
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	STK05
	MOV	STK05, R0
	MOV	R0,# 0x00
	BANKSEL	STK04
	MOV	STK04, R0
	MOV	R0,# 0x00
	BANKSEL	STK03
	MOV	STK03, R0
	BANKSEL	_AD_temp_I
	MOVZ	R0, _AD_temp_I
	BANKSEL	STK02
	MOV	STK02, R0
	BANKSEL	_AD_temp_I
	MOVZ	R0, (_AD_temp_I + 1)
	BANKSEL	STK01
	MOV	STK01, R0
	BANKSEL	_AD_temp_I
	MOVZ	R0, (_AD_temp_I + 2)
	BANKSEL	STK00
	MOV	STK00, R0
	BANKSEL	_AD_temp_I
	MOVZ	R0, (_AD_temp_I + 3)
	PAGESEL	__divulong
	CALL	__divulong
	PAGESEL	$
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x1060
	MOV	r0x1060, R0
	BANKSEL	STK01
	MOVZ	R0, STK01
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	STK02
	MOVZ	R0, STK02
	BANKSEL	_AD_I
	MOV	_AD_I, R0
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : CAST
;;103	MOVZ	R0, r0x105F
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	_AD_I
	MOV	(_AD_I + 1), R0
;	op : =
;	.line	419; "../main.c"	AD_temp_V=0;
	BANKSEL	_AD_temp_V
	CLR	_AD_temp_V
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 1)
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 2)
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 3)
;	op : =
;	.line	420; "../main.c"	AD_temp_I=0;
	BANKSEL	_AD_temp_I
	CLR	_AD_temp_I
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 1)
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 2)
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 3)
;	op : =
;	.line	421; "../main.c"	data_ok=1;
	BANKSEL	_Flag
	SET	_Flag, 1
;	op : =
;	.line	422; "../main.c"	AD_cnt=0;
	BANKSEL	_AD_cnt
	CLR	_AD_cnt
	BANKSEL	_AD_cnt
	CLR	(_AD_cnt + 1)
;	op : LABEL
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x1F5=501), size=2
_00169_DS_
;	.line	426; "../main.c"	if(AD_I>I_ERROR_MAX)			//Ͷ·
	MOV	R0,# 0x01
	BANKSEL	_AD_I
	SUB	R0, (_AD_I + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00265_DS_
	MOV	R0,# 0xf5
	BANKSEL	_AD_I
	SUB	R0, _AD_I
_00265_DS_
	JB	PSW, 0
	JMP	_00202_DS_
;	op : +
;	.line	428; "../main.c"	CurrentShortCnt++;
	BANKSEL	_CurrentShortCnt
	INC	_CurrentShortCnt
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0x6=6), size=1
;	.line	429; "../main.c"	if(CurrentShortCnt>5)
	MOV	R0,# 0x06
	BANKSEL	_CurrentShortCnt
	SUB	R0, _CurrentShortCnt
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00202_DS_
;	op : =
;	.line	431; "../main.c"	PWM1ON=0;
	BANKSEL	_PWMCTL_bits
	CLR	_PWMCTL_bits, 0
;	op : =
;	.line	432; "../main.c"	PWM_IO=0;
	BANKSEL	_P0LR_bits
	CLR	_P0LR_bits, 2
;	op : =
;	.line	433; "../main.c"	LEDFre=LEDFre_INIT/LED_I_ERROR;
	MOV	R0,# 0x06
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	434; "../main.c"	NoWaterFlag=1;
	BANKSEL	_AlarmFlag
	SET	_AlarmFlag, 0
;	op : =
;	.line	435; "../main.c"	LED2=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 2
;	op : =
;	.line	436; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : GOTO
	JMP	_00202_DS_
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00186_DS_
;	.line	444; "../main.c"	if(PWM1ON)
	BANKSEL	_PWMCTL_bits
	JB	_PWMCTL_bits, 0
	JMP	_00175_DS_
;	op : =
;	.line	446; "../main.c"	PWM1ON=0;
	BANKSEL	_PWMCTL_bits
	CLR	_PWMCTL_bits, 0
;	op : =
;	.line	447; "../main.c"	PWM_IO=0;
	BANKSEL	_P0LR_bits
	CLR	_P0LR_bits, 2
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00175_DS_
;	.line	450; "../main.c"	if(data_ok)
	BANKSEL	_Flag
	JB	_Flag, 1
	JMP	_00182_DS_
;	op : =
;	.line	452; "../main.c"	data_ok=0;
	BANKSEL	_Flag
	CLR	_Flag, 1
;	op : CALL
;	.line	454; "../main.c"	AdjustFun();
	PAGESEL	_AdjustFun
	CALL	_AdjustFun
	PAGESEL	$
;	op : <
;unsigned compare: left < lit(0x32=50), size=1
;	.line	455; "../main.c"	if(SubNum>=SubNum_INIT_MAX)		//,Ƭ쳣
	MOV	R0,# 0x32
	BANKSEL	_SubNum
	SUB	R0, _SubNum
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00182_DS_
;	op : =
;	.line	458; "../main.c"	if(AdjustOvercnt++>ADJUST_OVER_CNT_MAX)		//Ƶ3볬Ƶ
	BANKSEL	_AdjustOvercnt
	MOVZ	R0, _AdjustOvercnt
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : +
	BANKSEL	_AdjustOvercnt
	INC	_AdjustOvercnt
;	op : >
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x4=4), size=1
	MOV	R0,# 0x04
	BANKSEL	r0x105F
	SUB	R0, r0x105F
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00177_DS_
;	op : =
;	.line	460; "../main.c"	NoWaterFlag=1;
	BANKSEL	_AlarmFlag
	SET	_AlarmFlag, 0
;	op : =
;	.line	462; "../main.c"	LEDFre=LEDFre_INIT/LED_NUM_ERROR;
	MOV	R0,# 0x19
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	463; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : =
;	.line	464; "../main.c"	LED2=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 2
;	op : GOTO
	JMP	_00182_DS_
;	op : LABEL
;	op : -
_00177_DS_
;	.line	468; "../main.c"	CurrentAdjustNum = CurrentAdjustNum-I_ADJUST_NUM_CHANGE_NUM;
	MOV	R0,# 0xec
	BANKSEL	_CurrentAdjustNum
	ADD	_CurrentAdjustNum, R0
	JNB	PSW, 0
	JMP	_00289_DS_
	BANKSEL	_CurrentAdjustNum
	DEC	(_CurrentAdjustNum + 1)
;	op : -
_00289_DS_
;	.line	469; "../main.c"	SubNum = SubNum-40;
	MOV	R0,# 0xd8
	BANKSEL	_SubNum
	ADD	_SubNum, R0
;	op : +
;	.line	470; "../main.c"	OSCCAL0 = OSCCAL0+40;
	MOV	R0,# 0x28
	BANKSEL	_OSCCAL0
	ADD	_OSCCAL0, R0
;	op : LABEL
;	op : <
;unsigned compare: left < lit(0x32=50), size=1
_00182_DS_
;	.line	480; "../main.c"	if(main_cnt>=Time)
	MOV	R0,# 0x32
	BANKSEL	_main_cnt
	SUB	R0, _main_cnt
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00202_DS_
;	op : =
;	.line	482; "../main.c"	main_cnt=0;
	BANKSEL	_main_cnt
	CLR	_main_cnt
;	op : GOTO
	JMP	_00202_DS_
;	op : LABEL
;	op : CAST
_00191_DS_
;	.line	488; "../main.c"	if(NoWaterTimecnt>LEDFre)
	BANKSEL	_NoWaterTimecnt
	MOVZ	R0, _NoWaterTimecnt
	BANKSEL	r0x105F
	MOV	r0x105F, R0
	BANKSEL	r0x105E
	CLR	r0x105E
;	op : >
	MOV	R0,# 0x00
	BANKSEL	_LEDFre
	SUB	R0, (_LEDFre + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00270_DS_
	BANKSEL	r0x105F
	MOVZ	R0, r0x105F
	BANKSEL	_LEDFre
	SUB	R0, _LEDFre
_00270_DS_
	JNB	PSW, 0
	JMP	_00202_DS_
;	op : =
;	.line	490; "../main.c"	NoWaterTimecnt=0;
	BANKSEL	_NoWaterTimecnt
	CLR	_NoWaterTimecnt
;	op : GET_VALUE_AT_ADDRESS
;	op : !
;	op : =
;	.line	491; "../main.c"	LED2=!LED2;
	BANKSEL	_P2LR_bits
	JB	_P2LR_bits, 2
	JMP	_00271_DS_
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 2
	JMP	_00272_DS_
_00271_DS_
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : GET_VALUE_AT_ADDRESS
;	op : !
;	op : =
_00272_DS_
;	.line	492; "../main.c"	LED1=!LED1;
	BANKSEL	_P2LR_bits
	JB	_P2LR_bits, 1
	JMP	_00273_DS_
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
	JMP	_00274_DS_
_00273_DS_
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : GOTO
_00274_DS_
	JMP	_00202_DS_
;	op : LABEL
;	op : =
_00201_DS_
;	.line	498; "../main.c"	IO_FAN=0;///gy
	BANKSEL	_P1LR_bits
	CLR	_P1LR_bits, 0
;	op : GET_VALUE_AT_ADDRESS
;	.line	500; "../main.c"	if(!WorkOffFlag)
	BANKSEL	_Flag
	JNB	_Flag, 5
	JMP	_00202_DS_
;	op : =
;	.line	502; "../main.c"	WorkOffFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 5
;	op : =
;	.line	504; "../main.c"	PWM1ON=0;
	BANKSEL	_PWMCTL_bits
	CLR	_PWMCTL_bits, 0
;	op : =
;	.line	505; "../main.c"	PWM_IO=0;
	BANKSEL	_P0LR_bits
	CLR	_P0LR_bits, 2
;	op : =
;	.line	507; "../main.c"	LED1=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : =
;	.line	508; "../main.c"	LED2=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : INLINEASM
	CALL 0XFFF
	MOV OSCCAL0, R0
	CALL 0XFFE
	MOV OSCCAL1, R0
	CALL 0XFFD
	MOV OSCCAL2, R0
	CALL 0XFFC
	MOV OSCCAL3, R0
	
;	op : +
;	.line	523; "../main.c"	OSCCAL0 = OSCCAL0+10;
	MOV	R0,# 0x0a
	BANKSEL	_OSCCAL0
	ADD	_OSCCAL0, R0
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00193_DS_
;	.line	524; "../main.c"	while(KEY)		//ȴͷ
	BANKSEL	_P0_bits
	JB	_P0_bits, 3
	JMP	_00195_DS_
;	op : INLINEASM
	CWDT 
;	op : =
;	.line	527; "../main.c"	KeyDownNum=0;
	BANKSEL	_KeyDownNum
	CLR	_KeyDownNum
	BANKSEL	_KeyDownNum
	CLR	(_KeyDownNum + 1)
;	op : GOTO
	JMP	_00193_DS_
;	op : LABEL
;	op : IFX
_00195_DS_
;	.line	530; "../main.c"	if(NEED_CAL_IN_LINE)
	MOV	R0,# 0x00
	BANKSEL	_NEED_CAL_IN_LINE
	ORL	R0, _NEED_CAL_IN_LINE
	JNB	PSW, 2
	JMP	_00202_DS_
;	op : =
;	.line	532; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : SEND
;	op : CALL
;	.line	533; "../main.c"	delay_ms(2000);
	MOV	R0,# 0xd0
	BANKSEL	STK00
	MOV	STK00, R0
	MOV	R0,# 0x07
	PAGESEL	_delay_ms
	CALL	_delay_ms
	PAGESEL	$
;	op : =
;	.line	534; "../main.c"	touch_process_flag=0;
	BANKSEL	_touch_process_flag
	CLR	_touch_process_flag
;	op : LABEL
;	op : IFX
_00202_DS_
;	.line	539; "../main.c"	if(touch_process_flag && !PWM1ON)
	MOV	R0,# 0x00
	BANKSEL	_touch_process_flag
	ORL	R0, _touch_process_flag
	JNB	PSW, 2
	JMP	_00214_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_PWMCTL_bits
	JNB	_PWMCTL_bits, 0
	JMP	_00214_DS_
;	op : =
;	.line	541; "../main.c"	touch_process_flag = 0;
	BANKSEL	_touch_process_flag
	CLR	_touch_process_flag
;	op : GET_VALUE_AT_ADDRESS
;	.line	543; "../main.c"	if(NoWaterFlag || !WorkOn)TOUCH_DEBUG_TRS_DEAL();   // Լ320ָ
	BANKSEL	_AlarmFlag
	JNB	_AlarmFlag, 0
	JMP	_00203_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_Flag
	JNB	_Flag, 0
	JMP	_00204_DS_
;	op : LABEL
;	op : CALL
_00203_DS_
	PAGESEL	_TOUCH_DEBUG_TRS_DEAL
	CALL	_TOUCH_DEBUG_TRS_DEAL
	PAGESEL	$
;	op : LABEL
;	op : CALL
_00204_DS_
;	.line	545; "../main.c"	_KF8spts2w_LIBf_touch_process_();
	PAGESEL	__KF8spts2w_LIBf_touch_process_
	CALL	__KF8spts2w_LIBf_touch_process_
	PAGESEL	$
;	op : GET_VALUE_AT_ADDRESS
;	.line	547; "../main.c"	if(!NoWaterFlag && WorkOn)Water_Judge();
	BANKSEL	_AlarmFlag
	JNB	_AlarmFlag, 0
	JMP	_00207_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_Flag
	JB	_Flag, 0
	JMP	_00207_DS_
;	op : CALL
	PAGESEL	_Water_Judge
	CALL	_Water_Judge
	PAGESEL	$
;	op : LABEL
;	op : IFX
_00207_DS_
;	.line	550; "../main.c"	if(NEED_CAL_IN_LINE)
	MOV	R0,# 0x00
	BANKSEL	_NEED_CAL_IN_LINE
	ORL	R0, _NEED_CAL_IN_LINE
	JNB	PSW, 2
	JMP	_00214_DS_
;	op : =
;	.line	552; "../main.c"	if(cnt++>200)
	BANKSEL	_cnt
	MOVZ	R0, _cnt
	BANKSEL	r0x105F
	MOV	r0x105F, R0
;	op : +
	BANKSEL	_cnt
	INC	_cnt
;	op : >
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0xC9=201), size=1
	MOV	R0,# 0xc9
	BANKSEL	r0x105F
	SUB	R0, r0x105F
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00214_DS_
;	op : =
;	.line	554; "../main.c"	NEED_CAL_IN_LINE=0;
	BANKSEL	_NEED_CAL_IN_LINE
	CLR	_NEED_CAL_IN_LINE
;	op : =
;	.line	555; "../main.c"	for(i=0;i<CHS_AMOUNT;i++)
	BANKSEL	r0x105F
	CLR	r0x105F
;	op : LABEL
;	op : =
;gen_assign from CODESPACE
_00221_DS_
	MOV	R1,# high (_CHS_AMOUNT+0)
	MOV	R0,# low (_CHS_AMOUNT+0)
	PAGESEL	__R2PCL
	CALL	__R2PCL
	PAGESEL	$
	BANKSEL	r0x105E
	MOV	r0x105E, R0
;	op : <
	BANKSEL	r0x105E
	MOVZ	R0, r0x105E
	BANKSEL	r0x105F
	SUB	R0, r0x105F
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00224_DS_
;	op : LEFT_OP
;	.line	557; "../main.c"	_KF8_LIBi_buff_baseline_[i]=_KF8_LIBi_buff_hit_[i];
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x105E
	MOV	r0x105E, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_baseline_ + 0)
	BANKSEL	r0x105E
	ADD	r0x105E, R0
;	op : LEFT_OP
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x1061
	MOV	r0x1061, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_hit_ + 0)
	BANKSEL	r0x1061
	ADD	r0x1061, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x1061
	MOV	R1, r0x1061
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1063
	MOV	r0x1063, R0
	INC	R1
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1064
	MOV	r0x1064, R0
;	op : =
	BANKSEL	r0x1063
	MOVZ	R0, r0x1063
	BANKSEL	r0x105E
	MOV	R1, r0x105E
	BANKSEL	__KF8_LIBi_buff_baseline_
	ST	[R1], R0
	INC	R1
	BANKSEL	r0x1064
	MOVZ	R0, r0x1064
	BANKSEL	__KF8_LIBi_buff_baseline_
	ST	[R1], R0
;	op : LEFT_OP
;	.line	558; "../main.c"	_KF8_LIBi_buff_refline_[i]=_KF8_LIBi_buff_hit_[i];
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x105E
	MOV	r0x105E, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_refline_ + 0)
	BANKSEL	r0x105E
	ADD	r0x105E, R0
;	op : LEFT_OP
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x1061
	MOV	r0x1061, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_hit_ + 0)
	BANKSEL	r0x1061
	ADD	r0x1061, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x1061
	MOV	R1, r0x1061
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1063
	MOV	r0x1063, R0
	INC	R1
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1064
	MOV	r0x1064, R0
;	op : =
	BANKSEL	r0x1063
	MOVZ	R0, r0x1063
	BANKSEL	r0x105E
	MOV	R1, r0x105E
	BANKSEL	__KF8_LIBi_buff_refline_
	ST	[R1], R0
	INC	R1
	BANKSEL	r0x1064
	MOVZ	R0, r0x1064
	BANKSEL	__KF8_LIBi_buff_refline_
	ST	[R1], R0
;	op : LEFT_OP
;	.line	559; "../main.c"	Arr_erom_TS2W_[2*i+1]=(unsigned char)(_KF8_LIBi_buff_hit_[i]>>8);
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x105E
	MOV	r0x105E, R0
;	op : +
	BANKSEL	r0x105E
	INC	r0x105E
;	op : +
	MOV	R0,# (_Arr_erom_TS2W_ + 0)
	BANKSEL	r0x105E
	ADD	r0x105E, R0
;	op : LEFT_OP
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x1061
	MOV	r0x1061, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_hit_ + 0)
	BANKSEL	r0x1061
	ADD	r0x1061, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x1061
	MOV	R1, r0x1061
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1063
	MOV	r0x1063, R0
	INC	R1
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	BANKSEL	r0x1064
	MOV	r0x1064, R0
;	op : RIGHT_OP
;;108	MOVZ	R0, r0x1064
	BANKSEL	r0x1062
	CLR	r0x1062
;	op : CAST
;;107	MOVZ	R0, r0x1061
;	op : =
;;106	MOVZ	R0, r0x1063
	BANKSEL	r0x1061
	MOVZ	R0, r0x1061
	BANKSEL	r0x1063
	MOV	r0x1063, R0
	BANKSEL	r0x105E
	MOV	R1, r0x105E
	BANKSEL	_Arr_erom_TS2W_
	ST	[R1], R0
;	op : LEFT_OP
;	.line	560; "../main.c"	Arr_erom_TS2W_[2*i+0]=(unsigned char)(_KF8_LIBi_buff_hit_[i]);
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x105E
	MOV	r0x105E, R0
;	op : +
	MOV	R0,# (_Arr_erom_TS2W_ + 0)
	BANKSEL	r0x105E
	ADD	r0x105E, R0
;	op : LEFT_OP
	CLR	PSW, 0
	BANKSEL	r0x105F
	RLCR	r0x105F
	BANKSEL	r0x1061
	MOV	r0x1061, R0
;	op : +
	MOV	R0,# (__KF8_LIBi_buff_hit_ + 0)
	BANKSEL	r0x1061
	ADD	r0x1061, R0
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	r0x1061
	MOV	R1, r0x1061
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
	BANKSEL	r0x1063
	MOV	r0x1063, R0
	INC	R1
	BANKSEL	__KF8_LIBi_buff_hit_
	LD	R0, [R1]
;;1	MOV	r0x1065, R0
;	op : CAST
;;105	MOVZ	R0, r0x1063
;	op : =
;;104	MOVZ	R0, r0x1061
	BANKSEL	r0x1063
	MOVZ	R0, r0x1063
	BANKSEL	r0x1061
	MOV	r0x1061, R0
	BANKSEL	r0x105E
	MOV	R1, r0x105E
	BANKSEL	_Arr_erom_TS2W_
	ST	[R1], R0
;	op : +
;	.line	555; "../main.c"	for(i=0;i<CHS_AMOUNT;i++)
	BANKSEL	r0x105F
	INC	r0x105F
;	op : GOTO
	JMP	_00221_DS_
;	op : LABEL
;	op : CALL
_00224_DS_
;	.line	562; "../main.c"	write_eep_ts2w_();
	PAGESEL	_write_eep_ts2w_
	CALL	_write_eep_ts2w_
	PAGESEL	$
;	op : =
;	.line	564; "../main.c"	for(i=0;i<10;i++)
	BANKSEL	r0x105F
	CLR	r0x105F
;	op : LABEL
;	op : <
;unsigned compare: left < lit(0xA=10), size=1
_00225_DS_
	MOV	R0,# 0x0a
	BANKSEL	r0x105F
	SUB	R0, r0x105F
;comparing bytes at offset 0
	JNB	PSW, 0
	JMP	_00228_DS_
;	op : GET_VALUE_AT_ADDRESS
;	op : !
;	op : =
;	.line	566; "../main.c"	LED1=!LED1;
	BANKSEL	_P2LR_bits
	JB	_P2LR_bits, 1
	JMP	_00278_DS_
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
	JMP	_00279_DS_
_00278_DS_
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : SEND
;	op : CALL
_00279_DS_
;	.line	567; "../main.c"	delay_ms(200);
	MOV	R0,# 0xc8
	BANKSEL	STK00
	MOV	STK00, R0
	MOV	R0,# 0x00
	PAGESEL	_delay_ms
	CALL	_delay_ms
	PAGESEL	$
;	op : +
;	.line	564; "../main.c"	for(i=0;i<10;i++)
	BANKSEL	r0x105F
	INC	r0x105F
;	op : GOTO
	JMP	_00225_DS_
;	op : LABEL
;	op : =
_00228_DS_
;	.line	569; "../main.c"	LED1=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : LABEL
;	op : +
_00214_DS_
;	.line	574; "../main.c"	Touch_Watch++;
	BANKSEL	_Touch_Watch
	INC	_Touch_Watch
	JB	PSW, 2
	JMP	_00290_DS_
	BANKSEL	_Touch_Watch
	INC	(_Touch_Watch + 1)
;	op : CAST
_00290_DS_
;	.line	575; "../main.c"	if(Touch_Watch>=50000) // ϸʱ
	BANKSEL	_Touch_Watch
	MOVZ	R0, _Touch_Watch
	BANKSEL	r0x105F
	MOV	r0x105F, R0
	BANKSEL	_Touch_Watch
	MOVZ	R0, (_Touch_Watch + 1)
	BANKSEL	r0x105E
	MOV	r0x105E, R0
	BANKSEL	r0x1060
	CLR	r0x1060
	BANKSEL	r0x1061
	CLR	r0x1061
;	op : <
;signed compare: left < lit(0xC350=50000), size=4, mask=ffffffff
	MOV	R0,# 0x00
	ADD	R0,# 0x80
	ADD	R0,# 0x80
;comparing bytes at offset 3
	JB	PSW, 2
	JMP	_00280_DS_
	MOV	R0,# 0x00
	BANKSEL	r0x1060
	SUB	R0, r0x1060
	JB	PSW, 2
	JMP	_00280_DS_
	MOV	R0,# 0xc3
	BANKSEL	r0x105E
	SUB	R0, r0x105E
	JB	PSW, 2
	JMP	_00280_DS_
	MOV	R0,# 0x50
	BANKSEL	r0x105F
	SUB	R0, r0x105F
_00280_DS_
	JB	PSW, 0
	JMP	_00219_DS_
;	op : =
;	.line	577; "../main.c"	Touch_Watch=0;
	BANKSEL	_Touch_Watch
	CLR	_Touch_Watch
	BANKSEL	_Touch_Watch
	CLR	(_Touch_Watch + 1)
;	op : CALL
;	.line	578; "../main.c"	_KF8spts2w_LIBf_init_touch_();
	PAGESEL	__KF8spts2w_LIBf_init_touch_
	CALL	__KF8spts2w_LIBf_init_touch_
	PAGESEL	$
;	op : GOTO
	JMP	_00219_DS_
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of _main



func._ADCRead	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _ADCRead	;Function start
; 2 exit points
;has an exit
;functions called:
;   _delay_us
;   _delay_us
;5 compiler assigned registers:
;   STK00
;   r0x105A
;   r0x105B
;   r0x105C
;   r0x105D
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_ADCRead	;Function start
; 2 exit points
;	op : RECEIVE
;	.line	343; "../main.c"	uint ADCRead(uchar channel)
	BANKSEL	_ADCCTL0
	MOV	_ADCCTL0, R0
;	op : SEND
;	op : CALL
;	.line	348; "../main.c"	delay_us(10);
	MOV	R0,# 0x0a
	BANKSEL	STK00
	MOV	STK00, R0
	MOV	R0,# 0x00
	PAGESEL	_delay_us
	CALL	_delay_us
	PAGESEL	$
;	op : =
;	.line	350; "../main.c"	START = 1;  //ADڽת
	BANKSEL	_ADCCTL0_bits
	SET	_ADCCTL0_bits, 1
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00159_DS_
;	.line	351; "../main.c"	while(START);
	BANKSEL	_ADCCTL0_bits
	JNB	_ADCCTL0_bits, 1
	JMP	_00159_DS_
;	op : CAST
;	.line	352; "../main.c"	result = ADCDATA0H*256 + ADCDATA0L;
	BANKSEL	_ADCDATA0H
	MOVZ	R0, _ADCDATA0H
	BANKSEL	r0x105C
	MOV	r0x105C, R0
	BANKSEL	r0x105A
	MOV	r0x105A, R0
	BANKSEL	r0x105B
	CLR	r0x105B
;	op : LEFT_OP
;;109	MOVZ	R0, r0x105A
	BANKSEL	r0x105D
	CLR	r0x105D
;	op : CAST
	BANKSEL	_ADCDATA0L
	MOVZ	R0, _ADCDATA0L
	BANKSEL	r0x105A
	MOV	r0x105A, R0
	BANKSEL	r0x105B
	CLR	r0x105B
;	op : +
	BANKSEL	r0x105A
	MOV	R0, r0x105A
	BANKSEL	r0x105D
	ADD	r0x105D, R0
	MOV	R0,# 0x00
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00291_DS_
	BANKSEL	r0x105C
	ADD	r0x105C, R0
;	op : CAST
;;100	MOVZ	R0, r0x105D
;;102	MOVZ	R0, r0x105C
;	op : RETURN
;;99	MOVZ	R0, r0x105A
_00291_DS_
;	.line	353; "../main.c"	return	result;
	BANKSEL	r0x105D
	MOVZ	R0, r0x105D
	BANKSEL	r0x105A
	MOV	r0x105A, R0
	BANKSEL	STK00
	MOV	STK00, R0
;;101	MOVZ	R0, r0x105B
	BANKSEL	r0x105C
	MOVZ	R0, r0x105C
	BANKSEL	r0x105B
	MOV	r0x105B, R0
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of _ADCRead



func._KeyFun	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _KeyFun	;Function start
; 2 exit points
;has an exit
;functions called:
;   _Init_data
;   _Init_data
;   _Init_data
;   _Init_data
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_KeyFun	;Function start
; 2 exit points
;	op : GET_VALUE_AT_ADDRESS
;	.line	266; "../main.c"	if(LongKeyFlag)
	BANKSEL	_Flag
	JB	_Flag, 2
	JMP	_00127_DS_
;	op : =
;	.line	268; "../main.c"	LongKeyFlag=0;
	BANKSEL	_Flag
	CLR	_Flag, 2
;	op : =
;	.line	270; "../main.c"	KeyReadFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 4
;	op : GET_VALUE_AT_ADDRESS
;	op : !
;	op : =
;	.line	272; "../main.c"	WorkOn=!WorkOn;
	BANKSEL	_Flag
	JB	_Flag, 0
	JMP	_00157_DS_
	BANKSEL	_Flag
	CLR	_Flag, 0
	JMP	_00158_DS_
_00157_DS_
	BANKSEL	_Flag
	SET	_Flag, 0
;	op : =
_00158_DS_
;	.line	274; "../main.c"	Power=Max;
	MOV	R0,# 0x1e
	BANKSEL	_Power
	MOV	_Power, R0
;	op : =
;	.line	276; "../main.c"	CurrentAdjustNum=I_ADJUST_NUM;
	MOV	R0,# 0x0e
	BANKSEL	_CurrentAdjustNum
	MOV	_CurrentAdjustNum, R0
	MOV	R0,# 0x01
	BANKSEL	_CurrentAdjustNum
	MOV	(_CurrentAdjustNum + 1), R0
;	op : =
;	.line	278; "../main.c"	LEDFre=LEDFre_INIT;
	MOV	R0,# 0x32
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : GET_VALUE_AT_ADDRESS
;	.line	280; "../main.c"	if(!WorkOn)
	BANKSEL	_Flag
	JNB	_Flag, 0
	JMP	_00127_DS_
;	op : CALL
;	.line	282; "../main.c"	Init_data();
	PAGESEL	_Init_data
	CALL	_Init_data
	PAGESEL	$
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00127_DS_
;	.line	286; "../main.c"	if(LongKeycacFlag && !WorkOn)			//Уˮλ
	BANKSEL	_Flag
	JB	_Flag, 6
	JMP	_00129_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_Flag
	JNB	_Flag, 0
	JMP	_00129_DS_
;	op : =
;	.line	288; "../main.c"	LongKeycacFlag=0;
	BANKSEL	_Flag
	CLR	_Flag, 6
;	op : =
;	.line	289; "../main.c"	KeyReadFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 4
;	op : =
;	.line	290; "../main.c"	WorkOn=0;
	BANKSEL	_Flag
	CLR	_Flag, 0
;	op : CALL
;	.line	291; "../main.c"	Init_data();
	PAGESEL	_Init_data
	CALL	_Init_data
	PAGESEL	$
;	op : =
;	.line	292; "../main.c"	NEED_CAL_IN_LINE=1;
	MOV	R0,# 0x01
	BANKSEL	_NEED_CAL_IN_LINE
	MOV	_NEED_CAL_IN_LINE, R0
;	op : =
;	.line	293; "../main.c"	cnt=0;
	BANKSEL	_cnt
	CLR	_cnt
;	op : LABEL
;	op : GET_VALUE_AT_ADDRESS
_00129_DS_
;	.line	296; "../main.c"	if(ShortKeyFlag)
	BANKSEL	_Flag
	JB	_Flag, 3
	JMP	_00145_DS_
;	op : =
;	.line	298; "../main.c"	ShortKeyFlag=0;
	BANKSEL	_Flag
	CLR	_Flag, 3
;	op : =
;	.line	300; "../main.c"	KeyReadFlag=1;
	BANKSEL	_Flag
	SET	_Flag, 4
;	op : GET_VALUE_AT_ADDRESS
;	.line	302; "../main.c"	if(WorkOn && !NoWaterFlag)
	BANKSEL	_Flag
	JB	_Flag, 0
	JMP	_00145_DS_
;	op : GET_VALUE_AT_ADDRESS
	BANKSEL	_AlarmFlag
	JNB	_AlarmFlag, 0
	JMP	_00145_DS_
;	op : EQ_OP
;	.line	306; "../main.c"	if(Power==Max)
	BANKSEL	_Power
	MOVZ	R0, _Power
	XOR	R0,# 0x1e
	JB	PSW, 2
	JMP	_00138_DS_
;	op : =
;	.line	308; "../main.c"	Power=Min;
	MOV	R0,# 0x14
	BANKSEL	_Power
	MOV	_Power, R0
;	op : GOTO
	JMP	_00145_DS_
;	op : LABEL
;	op : EQ_OP
_00138_DS_
;	.line	310; "../main.c"	else if(Power==Min)
	BANKSEL	_Power
	MOVZ	R0, _Power
	XOR	R0,# 0x14
	JB	PSW, 2
	JMP	_00135_DS_
;	op : =
;	.line	312; "../main.c"	Power=Mid;
	MOV	R0,# 0x19
	BANKSEL	_Power
	MOV	_Power, R0
;	op : GOTO
	JMP	_00145_DS_
;	op : LABEL
;	op : EQ_OP
_00135_DS_
;	.line	314; "../main.c"	else if(Power==Mid)
	BANKSEL	_Power
	MOVZ	R0, _Power
	XOR	R0,# 0x19
	JB	PSW, 2
	JMP	_00132_DS_
;	op : =
;	.line	316; "../main.c"	Power=Max;
	MOV	R0,# 0x1e
	BANKSEL	_Power
	MOV	_Power, R0
;	op : GOTO
	JMP	_00145_DS_
;	op : LABEL
;	op : =
_00132_DS_
;	.line	320; "../main.c"	Power=Mid;
	MOV	R0,# 0x19
	BANKSEL	_Power
	MOV	_Power, R0
;	op : LABEL
;	op : ENDFUNCTION
_00145_DS_
	CRET	
; exit point of _KeyFun



func._Init_data	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _Init_data	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_Init_data	;Function start
; 2 exit points
;	op : =
;	.line	235; "../main.c"	Flag.AllByte=0;
	BANKSEL	_Flag
	CLR	 (_Flag + 0)
;	op : =
;	.line	236; "../main.c"	AlarmFlag.AllByte=0;
	BANKSEL	_AlarmFlag
	CLR	 (_AlarmFlag + 0)
;	op : =
;	.line	237; "../main.c"	CurrentAdjustNum=0;
	BANKSEL	_CurrentAdjustNum
	CLR	_CurrentAdjustNum
	BANKSEL	_CurrentAdjustNum
	CLR	(_CurrentAdjustNum + 1)
;	op : =
;	.line	240; "../main.c"	Time20MScnt=0;
	BANKSEL	_Time20MScnt
	CLR	_Time20MScnt
;	op : =
;	.line	241; "../main.c"	V_NoWatercnt=0;
	BANKSEL	_V_NoWatercnt
	CLR	_V_NoWatercnt
;	op : =
;	.line	242; "../main.c"	I_NoWatercnt=0;
	BANKSEL	_I_NoWatercnt
	CLR	_I_NoWatercnt
;	op : =
;	.line	243; "../main.c"	AdjustOvercnt=0;
	BANKSEL	_AdjustOvercnt
	CLR	_AdjustOvercnt
;	op : =
;	.line	244; "../main.c"	NoWaterTimecnt=0;
	BANKSEL	_NoWaterTimecnt
	CLR	_NoWaterTimecnt
;	op : =
;	.line	245; "../main.c"	main_cnt=0;
	BANKSEL	_main_cnt
	CLR	_main_cnt
;	op : =
;	.line	246; "../main.c"	SubNum=0;
	BANKSEL	_SubNum
	CLR	_SubNum
;	op : =
;	.line	247; "../main.c"	AD_temp_V=0;
	BANKSEL	_AD_temp_V
	CLR	_AD_temp_V
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 1)
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 2)
	BANKSEL	_AD_temp_V
	CLR	(_AD_temp_V + 3)
;	op : =
;	.line	248; "../main.c"	AD_temp_I=0;
	BANKSEL	_AD_temp_I
	CLR	_AD_temp_I
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 1)
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 2)
	BANKSEL	_AD_temp_I
	CLR	(_AD_temp_I + 3)
;	op : =
;	.line	249; "../main.c"	AD_V=0;
	BANKSEL	_AD_V
	CLR	_AD_V
	BANKSEL	_AD_V
	CLR	(_AD_V + 1)
;	op : =
;	.line	250; "../main.c"	AD_I=0;
	BANKSEL	_AD_I
	CLR	_AD_I
	BANKSEL	_AD_I
	CLR	(_AD_I + 1)
;	op : =
;	.line	251; "../main.c"	AD_cnt=0;
	BANKSEL	_AD_cnt
	CLR	_AD_cnt
	BANKSEL	_AD_cnt
	CLR	(_AD_cnt + 1)
;	op : =
;	.line	252; "../main.c"	Power=0;
	BANKSEL	_Power
	CLR	_Power
;	op : =
;	.line	253; "../main.c"	LEDFre=0;
	BANKSEL	_LEDFre
	CLR	_LEDFre
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	254; "../main.c"	CurrentShortCnt=0;
	BANKSEL	_CurrentShortCnt
	CLR	_CurrentShortCnt
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of _Init_data



func._Init_ram	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _Init_ram	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_Init_ram	;Function start
; 2 exit points
;	op : INLINEASM
	MOV R3,#0X00
	MOV _BANK,R3
LADR_0x009B:
	MOV R2 ,#0XFF
	MOV R1 ,#0X80
	JMP LADR_0x00F3
LADR_0x009C:
	XOR R0 ,R2
	CLR R0
	ST [R1],R0
	INC R1
LADR_0x00F3:
	MOV R0 ,R1
	XOR R0 ,R2
	JB _PSW,_Z
	JMP LADR_0x009C
	INC R3
	MOV R0,#0X04
	XOR R0,R3
	JNB _PSW,_Z
	JMP LADR_0x00F5
	MOV _BANK,R3
	JMP LADR_0x009B
LADR_0x00F5:
	NOP
	
;	op : LABEL
;	op : ENDFUNCTION
	CRET	
; exit point of _Init_ram



func._Water_Judge	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _Water_Judge	;Function start
; 2 exit points
;has an exit
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_Water_Judge	;Function start
; 2 exit points
;	op : BITWISEAND
;	.line	178; "../main.c"	if(_KF8_LIBi_channel_flag_&0x00000001)// key0  CT0
	BANKSEL	__KF8_LIBi_channel_flag_
	JNB	__KF8_LIBi_channel_flag_, 0
	JMP	_00117_DS_
;	op : =
;	.line	185; "../main.c"	LEDFre=LEDFre_INIT/LED_TOUCH_ERROR;
	MOV	R0,# 0x32
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	186; "../main.c"	NoWaterFlag=1;
	BANKSEL	_AlarmFlag
	SET	_AlarmFlag, 0
;	op : =
;	.line	187; "../main.c"	LED2=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : =
;	.line	188; "../main.c"	LED1=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : LABEL
;	op : ENDFUNCTION
_00117_DS_
	CRET	
; exit point of _Water_Judge



func._delay_us	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _delay_us	;Function start
; 2 exit points
;has an exit
;5 compiler assigned registers:
;   r0x1056
;   STK00
;   r0x1057
;   r0x1058
;   r0x1059
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_delay_us	;Function start
; 2 exit points
;	op : RECEIVE
;	.line	92; "../main.c"	void delay_us(uint us_data)
	BANKSEL	r0x1056
	MOV	r0x1056, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x1057
	MOV	r0x1057, R0
;	op : =
;	op : LABEL
;	op : =
_00051_DS_
;	.line	94; "../main.c"	while(us_data--)
	BANKSEL	r0x1057
	MOVZ	R0, r0x1057
	BANKSEL	r0x1058
	MOV	r0x1058, R0
	BANKSEL	r0x1056
	MOVZ	R0, r0x1056
	BANKSEL	r0x1059
	MOV	r0x1059, R0
;	op : -
	MOV	R0,# 0xff
	BANKSEL	r0x1057
	ADD	r0x1057, R0
	JNB	PSW, 0
	JMP	_00292_DS_
	BANKSEL	r0x1056
	DEC	r0x1056
;	op : IFX
_00292_DS_
	BANKSEL	r0x1058
	MOVZ	R0, r0x1058
	BANKSEL	r0x1059
	ORL	R0, r0x1059
	JNB	PSW, 2
	JMP	_00054_DS_
;	op : INLINEASM
	CWDT 
;	op : GOTO
	JMP	_00051_DS_
;	op : LABEL
;	op : ENDFUNCTION
_00054_DS_
	CRET	
; exit point of _delay_us



func._delay_ms	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _delay_ms	;Function start
; 2 exit points
;has an exit
;7 compiler assigned registers:
;   r0x1056
;   STK00
;   r0x1057
;   r0x1058
;   r0x1059
;   r0x105A
;   r0x105B
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_delay_ms	;Function start
; 2 exit points
;	op : RECEIVE
;	.line	73; "../main.c"	void delay_ms(uint ms_data)
	BANKSEL	r0x1056
	MOV	r0x1056, R0
	BANKSEL	STK00
	MOVZ	R0, STK00
	BANKSEL	r0x1057
	MOV	r0x1057, R0
;	op : =
;	op : LABEL
;	op : =
_00041_DS_
;	.line	76; "../main.c"	while(ms_data--)
	BANKSEL	r0x1057
	MOVZ	R0, r0x1057
	BANKSEL	r0x1058
	MOV	r0x1058, R0
	BANKSEL	r0x1056
	MOVZ	R0, r0x1056
	BANKSEL	r0x1059
	MOV	r0x1059, R0
;	op : -
	MOV	R0,# 0xff
	BANKSEL	r0x1057
	ADD	r0x1057, R0
	JNB	PSW, 0
	JMP	_00293_DS_
	BANKSEL	r0x1056
	DEC	r0x1056
;	op : IFX
_00293_DS_
	BANKSEL	r0x1058
	MOVZ	R0, r0x1058
	BANKSEL	r0x1059
	ORL	R0, r0x1059
	JNB	PSW, 2
	JMP	_00044_DS_
;	op : INLINEASM
	CWDT 
;	op : =
;	.line	80; "../main.c"	while(j--)
	MOV	R0,# 0xc8
	BANKSEL	r0x1058
	MOV	r0x1058, R0
	BANKSEL	r0x1059
	CLR	r0x1059
;	op : LABEL
;	op : =
_00038_DS_
	BANKSEL	r0x1058
	MOVZ	R0, r0x1058
	BANKSEL	r0x105A
	MOV	r0x105A, R0
	BANKSEL	r0x1059
	MOVZ	R0, r0x1059
	BANKSEL	r0x105B
	MOV	r0x105B, R0
;	op : -
	MOV	R0,# 0xff
	BANKSEL	r0x1058
	ADD	r0x1058, R0
	JNB	PSW, 0
	JMP	_00294_DS_
	BANKSEL	r0x1059
	DEC	r0x1059
;	op : IFX
_00294_DS_
	BANKSEL	r0x105A
	MOVZ	R0, r0x105A
	BANKSEL	r0x105B
	ORL	R0, r0x105B
	JNB	PSW, 2
	JMP	_00041_DS_
;	op : INLINEASM
	CWDT 
;	op : GOTO
	JMP	_00038_DS_
;	op : LABEL
;	op : ENDFUNCTION
_00044_DS_
	CRET	
; exit point of _delay_ms



func._AdjustFun	.code
;***
;  PostBlock Stats: dbName = C
;***
;entry:  _AdjustFun	;Function start
; 2 exit points
;has an exit
;2 compiler assigned registers:
;   r0x1056
;   r0x1057
;; Starting PostCode block
;	op : LABEL
;	op : FUNCTION
_AdjustFun	;Function start
; 2 exit points
;	op : >
;	.line	27; "../main.c"	if(AD_I>CurrentAdjustNum)
	BANKSEL	_AD_I
	MOVZ	R0, (_AD_I + 1)
	BANKSEL	_CurrentAdjustNum
	SUB	R0, (_CurrentAdjustNum + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00030_DS_
	BANKSEL	_AD_I
	MOVZ	R0, _AD_I
	BANKSEL	_CurrentAdjustNum
	SUB	R0, _CurrentAdjustNum
_00030_DS_
	JNB	PSW, 0
	JMP	_00008_DS_
;	op : <
;unsigned compare: left < lit(0xFA=250), size=1
;	.line	29; "../main.c"	if(OSCCAL0<250)OSCCAL0++;
	MOV	R0,# 0xfa
;	.line	30; "../main.c"	SubNum--;
	BANKSEL	_OSCCAL0
	SUB	R0, _OSCCAL0
	JNB	PSW, 0
	JMP	_00295_DS_
	BANKSEL	_OSCCAL0
	INC	_OSCCAL0
_00295_DS_
	BANKSEL	_SubNum
	DEC	_SubNum
;	.line	33; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : GOTO
	JMP	_00009_DS_
;	op : LABEL
;	op : -
_00008_DS_
;	.line	35; "../main.c"	else if(AD_I<CurrentAdjustNum-I_ADJUST_NUM_CHANGE_NUM)
	MOV	R0,# 0xec
	BANKSEL	_CurrentAdjustNum
	ADD	R0, _CurrentAdjustNum
	BANKSEL	r0x1056
	MOV	r0x1056, R0
	MOV	R0,# 0xff
	BANKSEL	r0x1057
	MOV	r0x1057, R0
	BANKSEL	_CurrentAdjustNum
	MOVZ	R0, (_CurrentAdjustNum + 1)
	JNB	PSW, 0
	INC	R0
	JNB	PSW, 2
	JMP	_00296_DS_
	BANKSEL	r0x1057
	ADD	r0x1057, R0
;	op : <
_00296_DS_
	BANKSEL	r0x1057
	MOVZ	R0, r0x1057
	BANKSEL	_AD_I
	SUB	R0, (_AD_I + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00032_DS_
	BANKSEL	r0x1056
	MOVZ	R0, r0x1056
	BANKSEL	_AD_I
	SUB	R0, _AD_I
_00032_DS_
	JNB	PSW, 0
	JMP	_00009_DS_
;	op : IFX
;	.line	37; "../main.c"	if(OSCCAL0)OSCCAL0--;	///AD_V  СOSCCAL
	MOV	R0,# 0x00
;	.line	38; "../main.c"	SubNum++;
	BANKSEL	_OSCCAL0
	ORL	R0, _OSCCAL0
	JNB	PSW, 2
	JMP	_00297_DS_
	BANKSEL	_OSCCAL0
	DEC	_OSCCAL0
_00297_DS_
	BANKSEL	_SubNum
	INC	_SubNum
;	.line	39; "../main.c"	LED1=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 1
;	op : LABEL
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0xE75=3701), size=2
_00009_DS_
;	.line	43; "../main.c"	if(AD_V>V_NO_WATER_MAX)//+(SubNum<<4))
	MOV	R0,# 0x0e
	BANKSEL	_AD_V
	SUB	R0, (_AD_V + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00033_DS_
	MOV	R0,# 0x75
	BANKSEL	_AD_V
	SUB	R0, _AD_V
_00033_DS_
	JB	PSW, 0
	JMP	_00013_DS_
;	op : =
;	.line	46; "../main.c"	if(V_NoWatercnt++>V_NoWatercnt_MAX)
	BANKSEL	_V_NoWatercnt
	MOVZ	R0, _V_NoWatercnt
	BANKSEL	r0x1056
	MOV	r0x1056, R0
;	op : +
	BANKSEL	_V_NoWatercnt
	INC	_V_NoWatercnt
;	op : >
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x1A=26), size=1
	MOV	R0,# 0x1a
	BANKSEL	r0x1056
	SUB	R0, r0x1056
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00013_DS_
;	op : =
;	.line	48; "../main.c"	LEDFre=LEDFre_INIT/LED_V_ERROR;
	MOV	R0,# 0x0c
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	49; "../main.c"	NoWaterFlag=1;
	BANKSEL	_AlarmFlag
	SET	_AlarmFlag, 0
;	op : =
;	.line	50; "../main.c"	LED2=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : =
;	.line	51; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : LABEL
;	op : <
;unsigned compare: left < lit(0x64=100), size=2
_00013_DS_
;	.line	54; "../main.c"	if((AD_I<I_ERROR_MIN)&&(AD_V>V_threshold_INIT))			//εƬѸٱСϵʱƬֵȽС
	MOV	R0,# 0x00
	BANKSEL	_AD_I
	SUB	R0, (_AD_I + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00035_DS_
	MOV	R0,# 0x64
	BANKSEL	_AD_I
	SUB	R0, _AD_I
_00035_DS_
	JNB	PSW, 0
	JMP	_00019_DS_
;	op : >
;swapping arguments (AOP_TYPEs 1/3)
;unsigned compare: left >= lit(0xBB9=3001), size=2
	MOV	R0,# 0x0b
	BANKSEL	_AD_V
	SUB	R0, (_AD_V + 1)
;comparing bytes at offset 1
	JB	PSW, 2
	JMP	_00036_DS_
	MOV	R0,# 0xb9
	BANKSEL	_AD_V
	SUB	R0, _AD_V
_00036_DS_
	JB	PSW, 0
	JMP	_00019_DS_
;	op : =
;	.line	56; "../main.c"	if(I_NoWatercnt++>V_NoWatercnt_MAX)
	BANKSEL	_I_NoWatercnt
	MOVZ	R0, _I_NoWatercnt
	BANKSEL	r0x1056
	MOV	r0x1056, R0
;	op : +
	BANKSEL	_I_NoWatercnt
	INC	_I_NoWatercnt
;	op : >
;swapping arguments (AOP_TYPEs 1/2)
;unsigned compare: left >= lit(0x1A=26), size=1
	MOV	R0,# 0x1a
	BANKSEL	r0x1056
	SUB	R0, r0x1056
;comparing bytes at offset 0
	JB	PSW, 0
	JMP	_00019_DS_
;	op : =
;	.line	58; "../main.c"	LEDFre=LEDFre_INIT/LED_I_ERROR;
	MOV	R0,# 0x06
	BANKSEL	_LEDFre
	MOV	_LEDFre, R0
	BANKSEL	_LEDFre
	CLR	(_LEDFre + 1)
;	op : =
;	.line	59; "../main.c"	NoWaterFlag=1;
	BANKSEL	_AlarmFlag
	SET	_AlarmFlag, 0
;	op : =
;	.line	60; "../main.c"	LED2=LED_OFF;
	BANKSEL	_P2LR_bits
	SET	_P2LR_bits, 2
;	op : =
;	.line	61; "../main.c"	LED1=LED_ON;
	BANKSEL	_P2LR_bits
	CLR	_P2LR_bits, 1
;	op : LABEL
;	op : ENDFUNCTION
_00019_DS_
	CRET	
; exit point of _AdjustFun


;	code size estimation:
;	  905+  493 =  1398 instructions ( 3782 byte)


	.end
